import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

// 定义一个容器
let store = new Vuex.Store({
    // 所有的状态放在state
    state:{
        count:100
    },

    // 类似计算属性 getters
    getters:{
        filterCount(state){
            return  state.count >= 120 ? 120 :state.count
        }
    },

    mutations:{
        addIncrement(state,payload){
            state.count+=payload.n;
        },
        // deIncrement(state){
        //     state.count-=1;
        // }
        deIncrement(state,payload){
            state.count-=payload.de;
        }
    },
    //异步操作
    actions:{
       //接受一个参数context
       addAction(context){
           setTimeout(()=>{
                // 改变状态，提交mutations
                context.commit('addIncrement',{n:5})
           },1000)
       } 
    }
})

export default  store